home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 5 / Amiga Tools 5.iso / tools / developer-tools / c-tools / c_examples / tapedeck / tapedeck.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1996-05-18  |  2.1 KB  |  75 lines

  1. //////////////////////////////////////////////////////////////////////////////
  2. // TapeDeck.cpp
  3. //
  4. // Deryk Robosson
  5. // April 29, 1996
  6. //////////////////////////////////////////////////////////////////////////////
  7.  
  8. //////////////////////////////////////////////////////////////////////////////
  9. // INCLUDES
  10. #include "aframe:include/TapeDeck.hpp"
  11.  
  12. //////////////////////////////////////////////////////////////////////////////
  13. //
  14.  
  15. AFTapeDeck::AFTapeDeck()
  16.     :ClassLibrary(NULL)
  17. {
  18.     if(!ClassLibrary) {
  19.         if(!(ClassLibrary=(struct ClassLibrary*)OpenLibrary((UBYTE*)"gadgets/tapedeck.gadget",37)))
  20.             if(!(ClassLibrary=(struct ClassLibrary*)OpenLibrary((UBYTE*)":classes/gadgets/tapedeck.gadget",37)))
  21.                 if(!(ClassLibrary=(struct ClassLibrary*)OpenLibrary((UBYTE*)"classes/gadgets/tapedeck.gadget",37)))
  22.                     printf("Unable to open tapedeck.gadget\n");
  23.     }
  24. }
  25.  
  26. AFTapeDeck::~AFTapeDeck()
  27. {
  28.     if(ClassLibrary) {
  29.         CloseLibrary((struct Library*)ClassLibrary);
  30.         ClassLibrary=NULL;
  31.     }
  32.  
  33.     DestroyObject();
  34. }
  35.  
  36. void AFTapeDeck::DestroyObject()
  37. {
  38.     if(m_pgadget) {
  39.         RemoveGList(m_pwindow->m_pWindow, (LPGadget)m_pgadget, 1);
  40.         ::DisposeObject(m_pgadget);
  41.         m_pgadget=NULL;
  42.     }
  43. }
  44.  
  45. void AFTapeDeck::Create(AFWindow *window, AFRect *rect, ULONG id)
  46. {
  47.     m_pwindow=window;
  48.  
  49.     if(m_pgadget = (LPExtGadget)NewObject(NULL, (UBYTE*)"tapedeck.gadget",
  50.                     GA_Top,    rect->TopLeft()->m_y,
  51.                     GA_Left, rect->TopLeft()->m_x,
  52.                     GA_Height, rect->Height(),
  53.                     GA_Width, rect->Width(),
  54.                     GA_RelVerify, TRUE,
  55.                     GA_Immediate, TRUE,
  56.                     GA_ID, id,
  57.                     TDECK_Tape, TRUE,
  58.                     TAG_DONE)) {
  59.  
  60.         AddGList(m_pwindow->m_pWindow, (LPGadget)m_pgadget, -1, 1, NULL);
  61.         m_pwindow->AppendGadget(this);
  62.     }
  63. }
  64.  
  65. ULONG AFTapeDeck::GetCurrentButton()
  66. {
  67.     ULONG result;
  68.  
  69.     if(m_pgadget) {
  70.         if(!(GetAttr(TDECK_Mode, m_pgadget, &result)))
  71.             return FALSE;
  72.         else return result;
  73.     } else return FALSE;
  74. }
  75.